package ReflectStudy.Exa2;

import java.util.Date;

/**
 * 通过Class对象获得引用类型的全类名或简单类名，
 * 通过全类名，我们可以用它去实例化该类的对象，通过简单类名我们可以用于区分等作用
 */
public class ClassNameTest {
    public static void main(String[] args) {
        // 获得Date引用类型全称
        String dateName = Date.class.getName();
        // 打印出引用类型全称
        System.out.println("非数组引用类型Date的全类名：" + dateName);

        String simpleName= Date.class.getSimpleName();
        //打印出引用类型类名简称
        System.out.println("非数组引用类型Date的简称类名："+simpleName);

        // 获得原始类型名称
        String byteName = byte.class.getName();
        String byteSim=byte.class.getSimpleName();
        // 输出原始类型名称
        System.out.println("基本类型byte的名称：" + byteName);
        System.out.println("基本类型byte简称："+byteSim);

        // 获得一维引用类型数组Date
        String oneDimensionArray = Date[].class.getName();
        // 输出一维引用类型数组名称
        System.out.println("一维引用类型数组Date[]全称：" + oneDimensionArray);
        System.out.println("一维引用类型数组Date[]简称："+ Date[].class.getSimpleName());
        System.out.println("二维引用类型数组Date[][]全称:"+ Date[][].class.getName());
        System.out.println("二维引用类型数组Date[][]简称:"+ Date[][].class.getSimpleName());

        // 获得二维原始类型
        String twoDimensionArray = int[][].class.getName();
        // 输出二维引用类型数组名称
        System.out.println("二维基本类型数组int[][]全称：" + twoDimensionArray);
        System.out.println("二维基本类型数组int[][]简称 "+ int[][].class.getSimpleName());
    }
}